import  os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog_manager.settings")
django.setup()
from blog.models import Article,CommentInfo,LogInfo
from django.contrib.auth.models import User
from django.utils import timezone
# TODO 以上代码 请不要复制到 重工数科 平台运行，否则会报错。务必使用 重工数科 1-8行的实现。
#（1）清空数据
#删除用户、文章、评论模型，以函数形式封装，注意先后顺序，否则外键约束会导致程序报错。
def DeleteData():
    #无返回值，注意删除的先后顺序，有外键约束
    User.objects.all().delete()
    CommentInfo.objects.all().delete()
    Article.objects.all().delete()
    return

#2.用户入库
def UserInit():
    #无返回值，按数据集要求的数据添加
    User.objects.create_user(username='admin', password='123456')
    return

#3.文章入库，按数据集要求的数据添加
# 参数结构为列表+字典，如
data_article = [
    {
        "id": 1,
        "category": "IT科技",
        "title": "AI大模型应用入门实战与进阶",
        "content": "XXX",
        "like_num": 231,
        "reply_num": 50,
        "read_num": 1000,
        "against_num": 50,
        "c_time": "2025-1-12"
    },
]

def ArticleInit(datas):
    #无返回值
    return

#4.评论入库，具体数据参照评论模型Article导入数据
# 参数结构为列表+字典，如
datas_comment=[
        {
        "id":2,
        "c_time":"2025-2-12",
        "content":"绝绝子",
        "user_id":1,
        "article_id":"1"
        },]

def CommentInfoInit(datas):
     #无返回值
    return

#5.分页查询,场景为：常规的文章数据显示，无查询条件，每页显示固定行数的文章。
#page_size为每页固定数据行数，index当前页
def get_All_Article(page_size,index=1):
     #返回数据为列表+列表，如[[1, 'AI大模型应用', '光剑书']....]
    return

#6.指定日期范围内文章数据查询
#start_time：开始日期，end_time：结束日期
def get_Article_ByTime(start_time,end_time):
     #返回数据类型为列表+列表，
     #如[[1, 'AI大模型', '光剑书架'], [3, '星绘：360上架“360AI浏览器”', #'郭静']]
    return

#7.查询有评论的文章数据
def get_Article_Comment():
    '''返回列表+列表，如[[1, 'AI大模型', '光剑书架上的书', '2025-01-12', 'admin', '绝绝子'], [2, '无人直播新航向', '维__kxs7667', '2025-02-01', 'admin', '我直接被圈粉了']]'''
    return

#以下语句不能删除
DeleteData()
UserInit()
ArticleInit(data_article)
CommentInfoInit(datas_comment)

#为减少自动测评时的问题，请测试完成后不要有多余的打印输出